;buildInfoPackage: chisel3, version: 3.1.3, scalaVersion: 2.11.12, sbtVersion: 1.1.1, builtAtString: 2018-09-12 19:37:29.007, builtAtMillis: 1536781049007
circuit AluTop : 
  module Alu : 
    input clock : Clock
    input reset : UInt<1>
    output io : {flip fn : UInt<2>, flip a : UInt<4>, flip b : UInt<4>, result : UInt<4>}
    
    wire result : UInt<4> @[Alu.scala 31:20]
    result <= UInt<1>("h00") @[Alu.scala 33:10]
    node _T_16 = eq(UInt<1>("h00"), io.fn) @[Conditional.scala 37:30]
    when _T_16 : @[Conditional.scala 40:58]
      node _T_17 = add(io.a, io.b) @[Alu.scala 37:27]
      node _T_18 = tail(_T_17, 1) @[Alu.scala 37:27]
      result <= _T_18 @[Alu.scala 37:22]
      skip @[Conditional.scala 40:58]
    else : @[Conditional.scala 39:67]
      node _T_20 = eq(UInt<1>("h01"), io.fn) @[Conditional.scala 37:30]
      when _T_20 : @[Conditional.scala 39:67]
        node _T_21 = sub(io.a, io.b) @[Alu.scala 38:27]
        node _T_22 = asUInt(_T_21) @[Alu.scala 38:27]
        node _T_23 = tail(_T_22, 1) @[Alu.scala 38:27]
        result <= _T_23 @[Alu.scala 38:22]
        skip @[Conditional.scala 39:67]
      else : @[Conditional.scala 39:67]
        node _T_25 = eq(UInt<2>("h02"), io.fn) @[Conditional.scala 37:30]
        when _T_25 : @[Conditional.scala 39:67]
          node _T_26 = or(io.a, io.b) @[Alu.scala 39:27]
          result <= _T_26 @[Alu.scala 39:22]
          skip @[Conditional.scala 39:67]
        else : @[Conditional.scala 39:67]
          node _T_28 = eq(UInt<2>("h03"), io.fn) @[Conditional.scala 37:30]
          when _T_28 : @[Conditional.scala 39:67]
            node _T_29 = and(io.a, io.b) @[Alu.scala 40:27]
            result <= _T_29 @[Alu.scala 40:22]
            skip @[Conditional.scala 39:67]
    io.result <= result @[Alu.scala 44:13]
    
  module AluTop : 
    input clock : Clock
    input reset : UInt<1>
    output io : {flip sw : UInt<10>, led : UInt<10>}
    
    inst alu of Alu @[Alu.scala 57:19]
    alu.clock <= clock
    alu.reset <= reset
    node _T_9 = bits(io.sw, 1, 0) @[Alu.scala 60:21]
    alu.io.fn <= _T_9 @[Alu.scala 60:13]
    node _T_10 = bits(io.sw, 5, 2) @[Alu.scala 61:20]
    alu.io.a <= _T_10 @[Alu.scala 61:12]
    node _T_11 = bits(io.sw, 9, 6) @[Alu.scala 62:20]
    alu.io.b <= _T_11 @[Alu.scala 62:12]
    io.led <= alu.io.result @[Alu.scala 65:10]
    
